package cn.teduymdj.jxc.mapper;


import cn.teduymdj.jxc.pojo.dto.SaleListGoodsAddNewDTO;
import cn.teduymdj.jxc.pojo.dto.SelectReturnCondition;
import cn.teduymdj.jxc.pojo.vo.SaleListCountListItemVO;
import cn.teduymdj.jxc.pojo.vo.SaleListGoodsListItemVO;
import cn.teduymdj.jxc.pojo.vo.SaleListGoodsStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 处理销售列表商品表mapper接口
 *
 * @author 欧阳林枫
 */

@Repository
public interface SaleListGoodsMapper {

    /**
     * 插入销售列表商品
     *
     * @param saleListGoodsAddNewDTO
     * @return 受影响行数
     */
    int insert(SaleListGoodsAddNewDTO saleListGoodsAddNewDTO);

    /**
     * 批量插入销售列表商品
     *
     * @param saleListGoodsAddNewDTOS
     * @return 受影响行数
     */
    int insertBatch(List<SaleListGoodsAddNewDTO> saleListGoodsAddNewDTOS);

    /**
     * 根据id删除列表商品
     *
     * @param id
     * @return 受影响行数
     */
    int deleteById(Long id);

    /**
     * 根据id批量删除列表商品
     *
     * @param ids
     * @return 受影响行数
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改列表商品
     *
     * @param saleListGoodsAddNewDTO
     * @return 受影响行数
     */
    int update(SaleListGoodsAddNewDTO saleListGoodsAddNewDTO);

    /**
     * 统计所有列表商品
     *
     * @return
     */
    int count();

    /**
     * 根据名称统计商品列表
     * @param name
     * @return 统计结果
     */
    int countByName(String name);

    /**
     * 根据id查询列表信息
     * @param id
     * @return 列表商品详情
     */
    SaleListGoodsStandardVO getStandardById(Long id);

    /**
     *
     * @return
     */
    List<SaleListGoodsListItemVO> list();

    Integer getCountByGoodsId(Long id);

    List<SaleListGoodsListItemVO> listByListId(Long id);

    int deleteByListId(Long id);

    List<SaleListCountListItemVO> listByCondition(SelectReturnCondition selectReturnCondition);

}
